#ifndef     __CTRL_H
#define     __CTRL_H

#include "../utils/object.h"
#include <stdint.h>

namespace heat_driver {

class Ctrl : public Object<Ctrl> {

public:
    enum class Parts : uint8_t {
        STEAM_HEAT = 0,
        WATER_HEAT = 1,
        V3 = 2,
        V4 = 3,
        DRAW_PUMP = 4,
        WATER_PUMP = 5,
        V6 = 6,
        STEAM_PUMP = 7,
        V_EXIT_RO = 8,
        P2 = 9,
        P1 = 10,
        V_ENTER_RO = 11,
        V1 = 12,
        V2 = 13,
        V5 = 14,
        V_DROP = 15,
    };

    void init();

    uint16_t flags() const;

    void open(Parts parts);
    void close(Parts parts);
};

extern Ctrl ctrl;

}

#endif
